package cn.itcast.crm.service;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import cn.itcast.crm.domain.Customer;

//提供访问的接口


//@Path("")类上的访问路径可以省略不写
public interface CustomerService {

//查询所有未关联的客户
	
@Path("/noAssociationCustomer")
@GET//查询用get方式发出请求
@Produces({"application/xml","application/json"})//返回参数的格式
public 	List<Customer> findNoAssociationCustomer();
	

//查询关联到指定定区的客户,这里需要时哪个定区

@Path("/associatedCustomer/{fixedAreaId}")
@GET
@Produces({"application/xml","application/json"})
public List<Customer> findAssociatedCustomer(@PathParam("fixedAreaId") String fixedAreaId );
	

//将客户关联到指定的定区上,这里需要两个参数，定区的id和需要关联的客户的id

@Path("/associateCustomerToFixedArea")//访问路径后面拼接参数的形式
@PUT//修改用put请求

public void associateCustomerToFixedArea(@QueryParam("customerIdStr") String customerIdStr,@QueryParam("fixedAreaId") String fixedAreaId);


@Path("/customer")
@POST//post是保存操作
@Consumes({"application/xml","application/json"})//接收参数的形式
public  void saveCustomer(Customer customer);



/**
 * 根据手机号查询对应的客户
 */

@GET
@Path("/customer/telephone/{telephone}")//访问路径携带参数
public Customer findByTelephone(@PathParam("telephone") String telephone);



/**
 * 激活邮件收到请求后，修改邮件激活状态属性type=1
 */
@PUT
@Path("/customer/updatetype/{telephone}")
public void updateType(@PathParam("telephone") String telephone);


/**
 *前台客户登陆验证 根据手机号和密码查询用户信息，
 */

@GET
@Path("/customer/login")
public Customer findCustomerByTelephoneAndPassword(@QueryParam("telephone" ) String telephone,@QueryParam("password") String password);

/**
 * 根据订单地址找到对应的定区id
 */

@GET
@Path("/customer/fixedAreaId")
public String findFixedAreaIdByAddress(@QueryParam("address") String address);

}


